#include "board.h"
#include "BH1750.h"
#include "bflb_gpio.h"

struct bflb_device_s *gpio;

typedef enum
{
	LED_STA_OFF = 0,   /* 关闭 */
	LED_STA_ON,        /* 打开 */
	LED_STA_LAST,
}LedSta;

void LED_Init()
{
	/* 初始化绿灯，用来指示LED状态 */
	gpio = bflb_device_get_by_name("gpio");
    bflb_gpio_init(gpio, GPIO_PIN_14, GPIO_OUTPUT | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_0);
}
void LED_SetSta(LedSta _Sta)
{
	if (_Sta)
	{
		/* 高电平打开LED */
		bflb_gpio_set(gpio, GPIO_PIN_14);
	}
	else
	{
		/* 低电平关闭LED */
		bflb_gpio_reset(gpio, GPIO_PIN_14);
	}
}
int main(void)
{
	float Lux = 0;
	LedSta LEDSta = LED_STA_ON;
	
	board_init();    /* 板卡初始化 */
	LED_Init();      /* LED初始化 */
	BH1750_Init();   /* 初始化BH1750 */
	LED_SetSta(LEDSta);
    while (1) 
	{
		/* 读取光照强度 */
		BH1750_ReadLightIntensity(&Lux);

		printf("BH1750 Read Light Intensity is:%.1f\r\n",Lux);
        
		Lux = 0;

		bflb_mtimer_delay_ms(1000);
		/* LED状态翻转，用来识别MCU是否正常工作 */
		if (LED_STA_ON == LEDSta)
		{
			LEDSta = LED_STA_OFF;
		}
		else
		{
			LEDSta = LED_STA_ON;
		}
		
		LED_SetSta(LEDSta);
    }
}
